package dao;

import java.util.List;

import model.Behandling;
import model.Delbehandling;
import model.LagerOmraade;


public interface DAO {
	<T> T find(Class<T> clazz, Object key);

	<T> List<T> get(Class<T> clazz);

	<T> void persist(T object);

	void update();

	<T> void remove(T managed);

	void clear();
	
	
	void transactionBegin() throws RuntimeException;
	void transactionCommit() throws RuntimeException;
	void transactionRollback() throws RuntimeException;
	
		
    //List<Kunde> findKunde(String something);
	LagerOmraade findLagerOmraadePaaNavn(String navn);
	
	Delbehandling findDelbehandlingPaaNavn(String navn);

    Behandling findBehandlingPaaNavn(String navn);

    boolean isTransactionActive();

    List<String> getAlleProduktTyperFraBehandling();

    List<Behandling> getAlleBehandlingPaaProduktType(String produktType);
    <T> void merge(T object);
}